package com.ls.lserp.modules.job.web;

import org.springframework.beans.factory.annotation.Autowired;

import com.ls.lserp.common.dynamicsource.DataSourceContextHolder;
import com.ls.lserp.common.utils.DateUtils;
import com.ls.lserp.common.utils.SpringContextHolder;
import com.ls.lserp.common.web.BaseController;
import com.ls.lserp.modules.job.service.FinanceSyncService;

/**
 * @ClassName : FinanceDataSyncJob
 * @Description : 每隔一定时间抽取采购合同、外发合同、预付款、样品和 大货定制合同中已审核通过的数据存入业务结算表。
 *
 * @author : shaoyun.tan
 * @date : 2017年11月17日
 */
public class FinanceDataSyncJob extends BaseController {

	// 每隔一定时间抽取数据存入业务结算表
	@Autowired
	private FinanceSyncService financeSyncService = SpringContextHolder.getBean(FinanceSyncService.class);

	/**
	 * @Title : financeSync
	 * @Description : 每隔一定时间抽取数据存入业务结算表
	 * @return : void
	 *
	 * @author : shaoyun.tan
	 * @throws Exception
	 * @date : 2017年11月17日
	 */
	public void financeSync() throws Exception {
		// 切换ERP数据库
		DataSourceContextHolder.setDbType(DataSourceContextHolder.DATA_SOURCE_ZYSQL);
		// 获取开始日期时间
		String nowDateTime = DateUtils.getDateTime();

		logger.info("--------------------" + nowDateTime + "财务业务明细数据抽取 [" + this.getClass().getName()
				+ "] 开始------------------------");

		// 抽取采购合同、外发合同、预付款、样品和大货合同中已审核通过的数据存入业务结算表，且更新以上表状态。
		financeSyncService.findDataInsertFinance();

		nowDateTime = DateUtils.getDateTime();

		logger.info("--------------------" + nowDateTime + "财务业务明细数据抽取 [" + this.getClass().getName()
				+ "] 结束------------------------");
	}
	
	/**
	 * @Title : financeSync
	 * @Description : 每隔一定时间抽取数据存入业务结算表
	 * @return : void
	 *
	 * @author : shaoyun.tan
	 * @throws Exception
	 * @date : 2017年11月17日
	 */
	public void financeCustomSync() throws Exception {
		// 切换ERP数据库
		DataSourceContextHolder.setDbType(DataSourceContextHolder.DATA_SOURCE_ZYSQL);
		// 获取开始日期时间
		String nowDateTime = DateUtils.getDateTime();

		logger.info("--------------------" + nowDateTime + "定制财务业务明细数据抽取 [" + this.getClass().getName()
				+ "] 开始------------------------");

		// 抽取定制合同数据存入业务结算表，且更新以上表状态。
		financeSyncService.findCustomDataInsertFinance();

		nowDateTime = DateUtils.getDateTime();

		logger.info("--------------------" + nowDateTime + "定制财务业务明细数据抽取 [" + this.getClass().getName()
				+ "] 结束------------------------");
	}

	/**
	 * @Title : settlementSync
	 * @Description : 每隔一定时间抽取结算数据存入机构结算表
	 * @return : void
	 *
	 * @author : shaoyun.tan
	 * @throws Exception
	 * @date : 2018年01月30日
	 */
	public void settlementSync() throws Exception {
		// 切换ERP数据库
		DataSourceContextHolder.setDbType(DataSourceContextHolder.DATA_SOURCE_ZYSQL);
		// 获取开始日期时间
		String nowDateTime = DateUtils.getDateTime();

		logger.info("--------------------" + nowDateTime + "财务机构结算数据抽取 [" + this.getClass().getName()
				+ "] 开始------------------------");

		// 每隔一定时间抽取结算数据存入机构结算表
		financeSyncService.findDataInsertFinanceOgn();
		nowDateTime = DateUtils.getDateTime();

		logger.info("--------------------" + nowDateTime + "财务机构结算数据抽取 [" + this.getClass().getName()
				+ "] 结束------------------------");
	}

}
